The present invention relates to methods for managing files according to application.
File-storage management is a well-known function in the art of computer engineering. Substantial effort is made to optimize the way files are stored and managed in non-volatile storage systems in order to optimize the speed, reliability, power consumption, and security level of the stored files.
Traditional storage devices are unable to discriminate between different storage circumstances, and therefore treat the stored files in a generally-optimal way, without adapting the file management to parameters that may vary among different storage-access scenarios.
Two patent applications, U.S. patent application Ser. No. 10/849,234 and U.S. patent application Ser. No. 10/952,837, both of SanDisk IL Ltd., Kefar Saba, Israel, significantly improve the performance of storage devices by making the flash-management attributes dependent upon the content of the stored data. Such an approach is clearly described in detail in the abovementioned applications. The abovementioned prior art indeed teach how to adapt the storage management of a file, based on attributes derived from the file type, such that a streaming music file (e.g. MP3 extension), for example, is treated differently than a text file (e.g. DOC extension).
However, according to the prior art, a file is always treated in the same way, regardless of which application accessed the file. Such a situation leaves much to be desired in terms of optimal storage management.
The following example shows how a file type (e.g. MP3 file) has different storage requirements when accessed by one application (e.g. music-player application) versus another application (e.g. a file-copying application). A music-rendering application (e.g. Microsoft™ Windows™ Media Player) requires that an MP3 file be treated with a fixed reading bit rate and low power consumption, but could tolerate a lower reliability.
In contrast, a file-copying application (e.g. Microsoft ActiveSync) would prefer to have the same MP3 file be treated with a fast reading speed and a high reliability, but could tolerate an unstable bit rate.
Therefore, it is clear that different applications would be optimally served by application-specific file management with respect to read and write performance, reliability level (e.g. error-correction algorithms), security, housekeeping, wear leveling, and the mapping of the logical files to physical pages and blocks in flash memory, for example. Unfortunately, in the prior-art systems, the identity of an application that accesses a file is not taken into consideration by flash-management systems.
It would be desirable to have methods for taking into consideration the application that issues a storage-access command when fulfilling the command.